package com.bbva.kyfb.kyfbutils.constantes;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.bbva.jee.arq.spring.core.gce.CodigoError;
import com.bbva.kyfb.kyfbdto.firmas.errores.Errores_kyfb_servicios;

/**
 * The Class Constantes.
 */
public class ConstantesFO {

	/** The peticion pendiente (normal o de usuario). */
	public static final int PET_PENDIENTE = 0;

	/** The peticion confeccion. */
	public static final int PET_CONFECCION = 1;

	/** The peticion historico. */
	public static final int PET_HISTORICO = 2;

	/** The peticion auditoria. */
	public static final int PET_AUDITORIA = 3;

	/** The orden online. */
	public static final String ORDEN_ONLINE = "O";

	/** The orden online. */
	public static final String ORDEN_ONLINE_NOMBRE_FICHERO = "ORDEN ONLINE";

	/** The firma host. */
	public static final String FIRMA_HOST = "FIRMAHOST";

	/** The vacio. */
	public static final String VACIO = "";

	/** The vacio espacio. */
	public static final String VACIO_ESPACIO = " ";

	/** The COMA. */
	public static final String COMA = ",";

	/** The PUNTO_Y_COMA. */
	public static final String PUNTO_Y_COMA = ";";

	/** The COMILLA_SIMPLE. */
	public static final String COMILLA_SIMPLE = "'";

	/** The versionsstt. */
	public static final String VERSIONSSTT = "200";

	/** The formato asunto. */
	public static final String FORMATO_ASUNTO = "40";

	/** The siglas firma servidor. */
	public static final String SIGLAS_FIRMA_SERVIDOR = "FS";

	/** The siglas firma host. */
	public static final String SIGLAS_FIRMA_HOST = "FH";

	/** The tipo accion delete. */
	public static final String TIPO_ACCION_DELETE = "O";

	/** The tipo accion consulta. */
	public static final String TIPO_ACCION_CONSULTA = "M";

	/** The tipo accion put. */
	public static final String TIPO_ACCION_PUT = "P";

	/** The todo. */
	public static final String TODO = "TODO";

	/** The PB_COD_SERV */
	public static final String PB_COD_SERV = "8550";

	/** The PB_XTI_COMPRPER */
	public static final String PB_XTI_COMPRPER = "N";

	/** The PB_SEGMENTO */
	public static final String PB_SEGMENTO = "00000";

	/** The XTITIPOPROD */
	public static final String XTITIPOPROD = "C";
	
	/** The BANCOINT_ESPANA */
	public static final	String BANCOINT_ESPANA ="0001";
	
	/** The Buzones */
	public static final	String BUZON_DEFECTO = "buzones";

	/** The GRABAR DISCLAIMER. */
	public static final String GRABAR_DISCLAIMER = "S";

	/** The fecha desde defecto. */
	public static final GregorianCalendar FECHA_DESDE_DEFECTO = new GregorianCalendar(1900, Calendar.JANUARY , 1);

	/** The fecha hasta defecto. */
	public static final GregorianCalendar FECHA_HASTA_DEFECTO = new GregorianCalendar(9999, Calendar.DECEMBER, 31);

	/** The importe desde defecto. */
	public static final BigDecimal IMPORTE_DESDE_DEFECTO = BigDecimal.ZERO;

	/** The importe hasta defecto. */
	public static final BigDecimal IMPORTE_HASTA_DEFECTO= new BigDecimal(100000000000000.00);	//15 digitos + 2 dec

	/** The importe hasta defecto. */
	public static final BigDecimal IMPORTE_HASTA_DEFECTO_2= new BigDecimal(999999999999.00);	//12 digitos + 2 dec

	/** The todo. */
	public static final String CODIGO_APLICACION_TX_010 = "11";

	/** The TXTEST. */
	public static final String TXTEST = "arqspring.mock.componente.transacciones";

	/** DATOS de INVOKERS*/
	public static final String VAR_LISTA_USUARIO = "com.bbva.jee.arq.spring.core.httpclient.url.informacionUsuarioInvoker";

	public static final String VAR_MODIF_DATOS_BASICOS = "com.bbva.jee.arq.spring.core.httpclient.url.modBasicosInvoker";

	public static final String VAR_INFO_SERV_INVOKER = "com.bbva.jee.arq.spring.core.httpclient.url.informacionServicioInvoker";

	public static final String VAR_TOKEN_USUARIO_INVOKER = "com.bbva.jee.arq.spring.core.httpclient.url.tokenUsuarioInvoker";

	public static final String VAR_INFO_EMPRESA = "com.bbva.jee.arq.spring.core.httpclient.url.informacionEmpresaInvoker";

	public static final String VAR_INFO_FICHERO = "com.bbva.jee.arq.spring.core.httpclient.url.servicioEjecucionHttp";

//	public static final String VAR_INFO_FICHERO2 = "com.bbva.jee.arq.spring.core.httpclient.url.servicioEjecucionHttp";

	public static final String VAR_GESTION_LIMITE = "com.bbva.jee.arq.spring.core.httpclient.url.gestionLimiteInvoker";
	
	public static final String ES_FICHERO = "TLSBEjecutarFicheroOp";
	
	public static final String ESTADO_CAB = "696";
	
	public static final String ESTADO_SFO = "FF";
	
	public static final int DF_LEN_SEGUNDODIR_DESDE =2;
	
	public static final int DF_LENG_PRIMERDIR_DESDE =3;
	
	public static final String LOGON_FINAL_FICH= "ORDENESCRC";
	
	public static final String LOGON_MOVIDO_FICH= "ORDENESCRC_MOVIDO";
	
	public static final String LOGON_DISTRIB_FICH= "ORDENESCRC_DISTRIB";

	public static final Character XTI_BUZON= 'C';
	
	public static final String NOMBRE_AIX = "AIX";
	
	public static final String NOMBRE_SOLARIS = "Solaris";
	
	public static final String SUFIJO_FICHERO_LENTO = "TA";
	
	public static final String ESTADO_PDTEFIRMAS = "PDTEFIRMAS";
	
	public static final String ESTADO_RECHAZOS = "RECHAZOS";
	
	public static final String DF_DESVIOBUZON = "1001";

	/** Este mapa sirve para administrar los errores lanzados por peticion de detalle.
	 * Se devuelve valor por defecto en caso de no encontrar la clave. */
	public static final Map<String, CodigoError> ERRORES_DETALLE_MAP = Collections.unmodifiableMap(
			new HashMap<String, CodigoError>() {

				/** Default serial version UID */
				private static final long serialVersionUID = 1L;

				@Override
				public CodigoError get(final Object key) {
					if(!containsKey(key)) {
						return Errores_kyfb_servicios.ERROR_GENERICO_EN_LA_REALIZACION_DEL_DETALLE;
					}
					return super.get(key);
				}{
					put("ASI0100000", Errores_kyfb_servicios.OK);
					put("ASI0100001", Errores_kyfb_servicios.ERROR_GENERICO_EN_LA_REALIZACION_DEL_DETALLE);
					put("ASI0100002", Errores_kyfb_servicios.ERROR_BBDD);
					put("ASI0100003", Errores_kyfb_servicios.EL_FICHERO_NO_EXISTE);
					put("ASI0100004", Errores_kyfb_servicios.EL_FICHERO_ESTA_VACIO);
					put("ASI0100005", Errores_kyfb_servicios.EL_FICHERO_EXCEDE_EL_TAMANIO_MAXIMO_PERMITIDO);
				}});

	/*
	 * LANZAR ASISTENTES
	 * */

	/** The CBTFTEST. */
	public static final String CBTFTEST = "arqspring.mock.componente.cbtfTest";

	/** The URLPAU. */
	public static final String URLPAU = "VAR.URL.PAU";

	/** The COD_PAIS. */
	public static final int COD_PAIS = 11;

	/** The NOT_FOUND. */
	public static final String NOT_FOUND = "NOT_FOUND";

	/** The GZIP_DEFLATE_SDCH. */
	public static final String GZIP_DEFLATE_SDCH = "gzip,deflate,sdch";

	/** The MAX_AGE_0. */
	public static final String MAX_AGE_0 = "max-age=0";

	/** The KEEP_ALIVE. */
	public static final String KEEP_ALIVE = "keep-alive";

	/** The COOKIE. */
	public static final String COOKIE = "Cookie";

	/** The ACCEPT_LANGUAGE. */
	public static final String ACCEPT_LANGUAGE = "Accept-Language";

	/** The USER_AGENT. */
	public static final String USER_AGENT = "User-Agent";

	/** The ACCEPT. */
	public static final String ACCEPT = "Accept";

	/** The ACCEPT_ENCODING. */
	public static final String ACCEPT_ENCODING = "Accept-Encoding";

	/** The CACHE_CONTROL. */
	public static final String CACHE_CONTROL = "Cache-Control";

	/** The CONNECTION. */
	public static final String CONNECTION = "Connection";

	/** The HOST. */
	public static final String HOST = "Host";

	/** The AMPERSAN. */
	public static final String AMPERSAN = "&";

	/** The IVUSER. */
	public static final String IVUSER = "iv-user";

	/** The IVCODBAN. */
	public static final String IVCODBAN = "iv-cod_ban_int";

	/** The IVGROUPS. */
	public static final String IVGROUPS = "iv-groups";

	/** The IVIDUNICO. */
	public static final String IVIDUNICO = "iv-idunico";

	/** The IVTIPOUSU. */
	public static final String IVTIPOUSU = "iv-tipo_usu";

	/** The IVCODUSU. */
	public static final String IVCODUSU = "iv-cod_usu";

	/** The IVCODCANAL. */
	public static final String IVCODCANAL = "iv-cod_canal";

	/** The IVCODEMP. */
	public static final String IVCODEMP = "iv-cod_emp";

	/** The VARHOSTPAU. */
	public static final String VARHOSTPAU = "VAR.URL.HOSTPAU";


	/** The codigo Logon para Ficheros estados intermedios. */
	public static final String CODIGO_LOGON_APL = "ORDENESCSB";

	/** The pagos internacionales espania. */
	public static final String PAGOS_INT_ESPANA = "TIN";

	/** The multidivisa. */
	public static final String MULTIDIVISA = "MUL";
	/*
	 * LANZAR PNM
	 * */

	/** The RAIZ. */
	public static final String RAIZ = "VAR.RAIZENTORNO";

	/** The RUTA_PNM_SH. */
	public static final String RUTA_PNM_SH = "VAR.RUTASCRIPALERTAPNM";

	/** The NOMBRE_PNM_SH. */
	public static final String NOMBRE_PNM_SH = "VAR.NOMBRESH";

	/** The CAMPO_VACIO_SH. */
	public static final String CAMPO_VACIO_SH = "\"\"";

	/** The ID_ALERTA_ORDEN. */
	public static final String ID_ALERTA_ORDEN = "VAR.IDALERTAORDEN";

	/** The ID_ALERTA_FICHERO. */
	public static final String ID_ALERTA_FICHERO = "VAR.IDALERTAFICHERO";

	/** The ALMOADILLA. */
	public static final String ALMOADILLA = "#";

	/*
	 * ERRORES DE TX QUE NO CORTAN EJECUCION
	 */
	
	/** The ERROR_TX_DEMASIADAS_RESPUESTAS.*/
	public static final String ERROR_TX_DEMASIADAS_RESPUESTAS = "C110";

	/** The ERROR_TX_ERROR BBDD.*/
	public static final String ERROR_TX_ERROR_BBDD = "B000";
	
	/** The ERROR_TX_INFORMACION INEXSISTENTE.*/
	public static final String ERROR_TX_INFORMACION_INEXISTENTE = "V038";
	
	/*
	 * LANZAR NOTIFICACION
	 * */

	/** The RUTA_SCRIPT_NOTIFICACION. */
	public static final String RUTA_SCRIPT_NOTIFICACION = "VAR.RUTASCRIPTNOTIFICACION";

	/** The NOMBRE_SH_NOTIFICACION. */
	public static final String NOMBRE_SH_NOTIFICACION = "VAR.NOMBRESHNOTIFICACION";

	/** The XSN_AVISNOTI. */
	public static final String XSN_AVISNOTI = "S";

	/** The PARAMETRO8. */
	public static final String PARAMETRO8 = "1";

	/** The PARAMETRO9. */
	public static final String PARAMETRO9 = "PA";

	/**RESPUESTA OK ELIMINAR ORDEN ONLINE  T.HOST**/
	public static final String AVISO_HOST_ORDEN_ELIMINADA = "59J";

	/**RESPUESTA ERROR DNI NO APODERADO ELIMINAR ORDEN ONLINE  T.HOST**/
	public static final String DNI_NO_APODERADO = "313";

	/**RESPUESTA ERROR DNI NO EXISTE COMO APODERADO ELIMINAR ORDEN ONLINE  T.HOST**/
	public static final String DNI_NO_EXISTE_APODERADO = "6JJ";
	
	/**FECHA CREACION**/
	public static final String  FECHA_CREACION = "FC";
	
	public static final String COD_ERROR_SUCCESSFUL = "ASI0100000";
	
	public static final String COD_ERROR = "ASI0100001";
	
	public static final String NO_EXISTEN_DATOS_A_LISTAR = "NO_EXISTEN_DATOS_A_LISTAR";
	
	public static final String ERROR_PARAMETROS_DE_PETICION_NO_PERMITIDOS = "ERROR_PARAMETROS_DE_PETICION_NO_PERMITIDOS";
	
	public static final String DIVISA_EUR = "EUR";
	
	public static final String NOT_PROVIDED = "NOTPROVIDED";

	public static final String GASTO_SHARE = "SHA";
	
	public static final String XTI_CORRECTORA_N = "N";
	
	public static final String XTI_CORRECTORA_S = "S";
	
	public static final String XTI_EJECUCION = "E";
	
	public static final String XTI_OPERACION_TN = "TN";
	
	public static final String XTI_GASTO_A = "A";
	
	public static final String COD_NUM_UNO = "1";
	
	public static final String COD_NUM_ZERO = "0";	
	
}
